//牛客 HJ99 自守数
//题目：自守数是指一个数的平方的尾数等于该数自身的自然数。例如：25^2 = 625，76^2 = 5776，
//9376^2 = 87909376。请求出n(包括n)以内的自守数的个数

//思路：按照题目描述，用平方后的数字减去本来的数字，再去%10^数字的位数 = 0就是自守数
//如果只是%10，当9376^2 = 87909376很大的数字出来，减去本来的数字只是让个位变为0，其实尾数并不是该数自身
//这样就会出错，因此9376^2 = 87909376这样的，%10^4，4是9376的个数

#include <stdio.h>
#include <math.h>
int getDigit(int n)
{
    if(0 == n)
        return 1;
    int count = 0;
    while(n)
    {
        count++;
        n /= 10;
    }
    return count;
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int count = 0;

    for(int i = 0; i <= n; i++)
    {
        int ret = getDigit(i);
        if((int)(pow(i, 2)-i) % (int)pow(10, ret) == 0)
            count++;
    }
    printf("%d\n", count);
    return 0;
}